home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)t6.d64 / sound setter.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  3KB  |  101 lines

  1. 1 REM.......  SOUND SETTER ...........
  2. 2 REM C-64 SOUND SETTING PROGRAM.....
  3. 3 REM USES VOICE 1
  4. 5 DIM EN(16)
  5. 10 DATA 2,8,16,24,38,56,68,80,100,250,500,800,1000,3000,5000,8000
  6. 12 FOR I=1TO16:READ EN(I):NEXT
  7. 20 PRINT"[147]":V1=54272:FORI=V1TOV1+24:POKE I,0:NEXT:REM CLEAR SID CHIP..
  8. 30 INPUT"WAVEFORM  TRI-SAW-NOISE-PULSE";WA$
  9. 31 :
  10. 45 INPUT"FREQUENCY  0-4000HZ";FR
  11. 46 VA=FR/.0596:IF VA>65535THEN VA=65535
  12. 50 FLO=VA-65280:IF FLO<0THEN FLO=0
  13. 60 FHI=VA/256:POKEV1+1,FHI:POKEV1,FLO
  14. 61 :
  15. 62 IF WA$<>"PULSE"THEN 70
  16. 63 INPUT"ENTER PULSE DUTY CYCLE %";DC:IFDC<0ORDC>100 THEN DC=0
  17. 64 PN=DC*40.95:PL=PNAND255:PH=(PNAND3840)/255
  18. 65 POKE54274,PL:POKE54275,PH
  19. 70 PRINT"VALID ATTACK/SUSTAIN VALUES"
  20. 71 FORI=1TO16:PRINT EN(I);:NEXT:PRINT
  21. 72 PRINT"VALID DECAY/RELEASE VALUES"
  22. 73 FORI=1TO16:PRINT EN(I)*3;:NEXT:PRINT
  23. 75 INPUT"ATTACK VALUE(MSEC)";AT:GOSUB 400:IFAT=-1THEN75
  24. 80 INPUT"DECAY VALUE (MSEC)";DE:GOSUB 500:IFDE=-1THEN80
  25. 85 INPUT"SUSTAIN VALUE(MSEC)";SU:GOSUB 600:IFSU=-1THEN85
  26. 90 INPUT"RELEASE VALUE(MSEC)";RE:GOSUB 700:IFRE=-1THEN90
  27. 91 :
  28. 100 FI=0:INPUT"IS FILTERING DESIRED Y/N";A$:IF A$<>"Y" THEN GOTO125
  29. 102 POKEV1+23,241:REM TURN ON VOICE-1 FILTER.
  30. 105 INPUT"LO-PASS Y/N";F1$
  31. 110 INPUT"HI-PASS Y/N";F2$
  32. 115 INPUT"BAND-PASS Y/N";F3$
  33. 120 GOSUB 800
  34. 125 POKEV1+24,FI+15:REM SET VOL TO MAX
  35. 180 :
  36. 195 IFWA$="TRI"THEN PV=17
  37. 196 IFWA$="SAW"THEN PV=33
  38. 197 IFWA$="NOISE"THEN PV=129
  39. 198 IFWA$="PULSE"THEN PV=65
  40. 200 PRINT"[147]      SELECTED SOUND PARAMETERS         "
  41. 202 PRINT"FREQUENCY-";FR;"HZ    WAVEFORM-"WA$
  42. 204 PRINT"ATTACK-"AT" MSEC    DECAY-"DE"MSEC"
  43. 205 PRINT"SUSTAIN-"SU"MSEC    RELEASE-"RE"MSEC
  44. 206 [139]WA$[178]"PULSE"[167] [153][199](13);"PULSE DUTY CYCLE-";DC;"%"
  45. 208 [153]"HIT (SPACE) TO PLAY NOTE"[199](13)"      F1 TO RE-SET..."
  46. 220 [161]A$:[139]A$[178][199](133)[167]20
  47. 225 [139]A$[179][177][199](32)[167]220
  48. 230 [143] PLAY NOTE............
  49. 233 [151] V1[170]4,PV:[143] TURN ON SOUND
  50. 234 [143]******FOR W=1TO(AT+DE+SU):NEXT
  51. 235 [151]V1[170]4,PV[171]1:[143] CLR GATE BIT.LET ENVELOPE RELEASE.
  52. 250 [137]220
  53. 260 :
  54. 400 [143]..SUB POKES ATTACK VALUE
  55. 405 [139]AT[179]2 [176] AT[177]8000 [167]420
  56. 410 [129] I[178]1[164]16
  57. 412 [139] AT[178]EN(I)[167]430
  58. 415 [130]I
  59. 420 [153]"***INVALID ATTACK VALUE***":AT[178][171]1:[137]450
  60. 430 [151]V1[170]5,(I[171]1)[172]16:[143] ATTACK CODE TO BITS 4-7
  61. 450 [142]
  62. 499 :
  63. 500 [143]...SUB POKES DECAY VALUE
  64. 505 [139]DE[179]6 [176]DE[177]24000 [167]520
  65. 510 [129] J[178]1[164]16:[139] DE[178]EN(J)[172]3 [167] 530
  66. 515 [130]J
  67. 520 [153]"*INVALID DECAY VALUE*":DE[178][171]1:[137]550
  68. 530 [151]V1[170]5,J[171]1:[143] DECAY CODE BIT 0-3
  69. 550 [142]
  70. 599 :
  71. 600 [143]..SUB POKES SUSTAIN VALUE
  72. 605 [139]SU[179]2 [176] SU[177]8000 [167]620
  73. 610 [129] K[178]1[164]16
  74. 612 [139] SU[178]EN(K)[167]630
  75. 615 [130]K
  76. 620 [153]"***INVALID SUSTAIN VALUE***":SU[178][171]1:[137]650
  77. 630 [151]V1[170]6,(K[171]1)[172]16:[143] SUSTAIN CODE TO BITS 4-7
  78. 650 [142]
  79. 699 :
  80. 700 [143]...SUB POKES RELEASE VALUE
  81. 705 [139]DE[179]6 [176]DE[177]24000 [167]720
  82. 710 [129] L[178]1[164]16:[139] RE[178]EN(L)[172]3 [167] 730
  83. 715 [130]L
  84. 720 [153]"*INVALID RELEASE VALUE*":RE[178][171]1:[137]750
  85. 730 [151]V1[170]6,L[171]1:[143] RELEASE CODE BIT 0-3
  86. 750 [142]
  87. 751 :
  88. 800 [143] SET UP FILTER(S)
  89. 802 FI[178]0
  90. 810 [133]"ENTER CUTOFF FREQ-HZ";CF
  91. 812 [141]850:[151]V1[170]21,FCL:[151]V1[170]22,FCH
  92. 815 [139]F1$[178]"Y" [167] FI[178]FI[170]16
  93. 816 [139]F2$[178]"Y" [167] FI[178]FI[170]64
  94. 817 [139]F3$[178]"Y" [167] FI[178]FI[170]32
  95. 820 [142]
  96. 821 :
  97. 849 [143] CALCULATE & RETURN FILTER REGISTER VALUE.
  98. 850 RV[178][182](CF[171]30)[173]5.85:[139]RV[177]2047 [167]RV[178]2047
  99. 855 FCL[178]RV[175]7:FCH[178]RV[173]8
  100. 860 [142]
  101.